/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ig.metrica.ui.modelo.modelotablas;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import javax.swing.table.AbstractTableModel;

import ig.finanzas.riesgo.FactorRiesgoMatrizCorrelacion;
import ig.finanzas.riesgo.FactorRiesgoPersonal;
//import ig.metrica.riesgo.MatrizCorrelacion;
//import ig.metrica.riesgo.MatrizCorrelacionHome;
import ig.util.excepciones.DatoInvalidoExcepcion;


/**
 *
 * @author jsanchez
 */
public class ModeloTablaPAFM extends AbstractTableModel{

    private String[] titulos = { "Factor", "Factor Matriz Correlacion" };
    private Hashtable relacionFactores;
    private Hashtable relacionFactoresPantalla;

    public ModeloTablaPAFM(Hashtable relacionFactores){
        this.relacionFactores = relacionFactores;
    }

    public void setRelacionFactores(Hashtable relacion){
        this.relacionFactores = relacion;
        fireTableDataChanged();
    }
    public void setRelacionFactoresPantalla(Hashtable relacion){
        this.relacionFactoresPantalla = relacion;
    }
    public Hashtable getRelacionFactores(){
        return relacionFactores;
    }

    @Override
    public String getColumnName(int col){
        return titulos[col];
    }

    @Override
    public Class getColumnClass(int col){
        return String.class;
    }

    public int getColumnCount(){
        return titulos.length;
    }

    public int getRowCount(){
        return relacionFactores.size();
    }

    @Override
    public boolean isCellEditable(int row, int col){
        if (col==1)
            return true;

        return false;
    }

    public void setValueAt(Object value, int row, int col){
        if (col==1){
            ArrayList factorestemp = new ArrayList(relacionFactores.keySet());
            Collections.sort(factorestemp);
            Object llave = factorestemp.get(row);
            FactorRiesgoPersonal factor = (FactorRiesgoPersonal)relacionFactores.get(llave);
            try {
                factor.setFactorRiesgoMatrizCorrelacion( (FactorRiesgoMatrizCorrelacion)value );
            } catch (DatoInvalidoExcepcion e) {}
        }else{

        }
        fireTableCellUpdated(row, col);
    }

    public Object getValueAt(int row, int col){
        ArrayList factorestemp = new ArrayList(relacionFactores.keySet());
        Collections.sort(factorestemp);

        Object llave = factorestemp.get(row);
        String llave1= null;
        String tmp= null;
        try {
            tmp=llave.toString().trim();
            llave1=(String) relacionFactoresPantalla.get(tmp);
        } catch (Exception e) {}
        if (col==0){
            if(llave1!=null)
                return llave1 + " : "+ llave;
            else
                return llave;
        }else if (col==1){
            FactorRiesgoPersonal factor = (FactorRiesgoPersonal)relacionFactores.get(llave);
//                        System.out.println("factor:"+factor.getTasaPK());
//                        System.out.println("factor.getFactorRiesgoMatrizCorrelacion():"+factor.getFactorRiesgoMatrizCorrelacion());
            return factor.getFactorRiesgoMatrizCorrelacion();
        }
        return null;
    }

}